package com.wzx.common.util.encrypt;

import com.wzx.common.exception.LeadNewsException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * @author bigboss
 * @date 2021/12/16 - 14:04
 */
@Slf4j
public class Md5Util {

    /**
     * 1，带秘钥的加密
     * @param text 明文
     * @param key 秘钥
     * @return 密文
     */
    public static String md5byKey(String text,String key) throws LeadNewsException{
        //加密后的字符串
        return DigestUtils.md5Hex(text + key);
        //log.info("MD5加密后的字符串为：{}",md5Str);
    }

    /**
     * 2，不带秘钥的加密
     * @param text 明文
     * @return 密文
     */
    public static String md5 (String text) throws LeadNewsException {
        //加密后的字符串
        return DigestUtils.md5Hex(text);
        //log.info("MD5加密后的字符串为：{}",md5Str);

    }

    /**
     * 3，校验
     * @param text 明文
     * @param md5 加密后的密文
     * @return 校验成功或失败
     */
    public static boolean verify(String text,String md5) throws LeadNewsException {
        return md5(text).equals(md5);
    }

    /**
     * 4，校验
     * @param text 明文
     * @param md5 加密后的密文
     * @param key 秘钥
     * @return 校验成功或失败
     */
    public static boolean verifyByKey(String text,String md5,String key) throws LeadNewsException {
        return md5byKey(text,key).equals(md5);
    }

}
